<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <!-- 3、堆箱子

```
堆箱子。给你一堆n个箱子，箱子宽 wi、深 di、高 hi。箱子不能翻转，将箱子堆起来时，下面箱子的宽度、高度和深度必须大于上面的箱子。实现一种方法，搭出最高的一堆箱子。箱堆的高度为每个箱子高度的总和。
输入使用数组[wi, di, hi]表示每个箱子。

示例1:
输入：box = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
输出：6

 -->
</head>
<body>
  <script>
var pileBox = function(box) {
    // 排序
    box.sort((a, b) => a[0] === b[0] ? a[1] === b[1] ? b[2] - a[2] : b[1] - a[1] : a[0] - b[0])
    const len = box.length
    let dp = Array.from({length: len},(_, i) => box[i][2])
    let max = 1
    for (let i = 0; i < len; i++) {
        max = Math.max(max, dp[i])
        for (let j = i + 1; j < len; j++) {
            if (box[j][1] > box[i][1] && box[j][2] > box[i][2]) {
                dp[j] = Math.max(dp[j], dp[i] + box[j][2])
                max = Math.max(max, dp[j])
            }
        }
    }
    return max
};

  </script>
</body>
</html>